Create simple web service as .asmx
<%@ WebService Language="c#" Class="MyServiceNs.WebServiceSimple" %>
using System.Web.Services;
namespace MyServiceNs
{
[WebService(Namespace="http://localhost/myservice")]
public class WebServiceSimple : WebService
{
[WebMethod(Description="This method sums 2 integers")]
public int Add(int a, int b)
{
return a+b;
}
}
}
More info and samples on: www.devarchweb.net
How to deploy web service (3 options) - create WebServiceSimpleEmbedded.asmx file and copy paste the code sample aboveMore info and samples on: www.devarchweb.net
How to get web service definition (WSDL) To see web service definition in SOAP, type http://localhost/WebServiceSimple/WebServiceSimpleEmbedded.asmx?WSDLMore info and samples on: www.devarchweb.net
What needs to be done in order to access a web method directly from URL<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet" />
</protocols>
</webServices>
</system.web>
</configuration>
More info and samples on: www.devarchweb.net
How to access method from HTML form<FORM action="http://localhost/WebserviceSimple/WebServiceSimpleEmbedded.asmx/Add" method="post">
A <input type="text" name="a"> +
B <input type="text" name="b">
<input type="submit" value="Calculate">
</FORM>
More info and samples on: www.devarchweb.net
Create proxy In order to call web service from a .net client you need to create a proxy. You can do it from command line
"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\WSDL.exe"
http://localhost/WebserviceSimple/WebServiceSimpleEmbedded.asmx?WSDL
/out:WebServiceSimpleProxy.cs
More info and samples on: www.devarchweb.net
Implement .net client in C# that calls a method You need to include WebServiceSimpleProxy.cs that defines "WebServiceSimple" client class in your project and compile the code belowusing System;
namespace Client
{
class Program
{
static void Main(string[] args)
{
WebServiceSimple client = new WebServiceSimple(); // class defined in proxy
int result = client.Add(1, 2);
client.Close();
}
}
}
More info and samples on: www.devarchweb.net
How to use Sessionpublic class SampleService : System.Web.Services.WebService
{
[WebMethod(Description = "This method sums 2 integers", EnableSession=true)]
public int Add(int a, int b)
{
if (Session["AccessCounter"] == null) { Session["AccessCounter"] = 1; } // using Session requires "EnableSession=true" attribute
else { Session["AccessCounter"] = ((Int32)Session["AccessCounter"]) + 1; }
return a + b;
}
[WebMethod(EnableSession=true)]
public int AccessCount()
{
if (Session["AccessCounter"] == null) { return 0; }
else { return (Int32)Session["AccessCounter"]; }
}
}